***Step 4: Return Custom View***

	HaackOverflowEntities entities = new HaackOverflowEntities();
  	return View(entities.Questions);
**********************************************************************
**Step 5: Strongly type the Questions Model**

	ViewPage<IEnumerable<Question>>

**********************************************************************

**Step 6: Enumerate through the list of questions**

    <ul id="questions">
    <% foreach(var question in ViewData.Model) { %>
        <li><%= question.Title %></li>
    <% } %>
    </ul>
**********************************************************************
***Step 7: Enumerate and add more question data***

  <ul id="questions">
    <% foreach(var question in ViewData.Model) { %>
        <li>

	<div class = "question-info">
		<div class = "Votes count">
			<span>
			<%= question.Votes /></span> votes </div>

		<div class= "views count">
			<span>
				<%= question.Views%></span> views</div>

		<div class = "question>
			<div class ="body">
			<%= Html.Encode(question.Title)%></div>
		<div class="meta">
		question asked on
		<%=question.DateCreated%></div>
	</div>
	</div>
	</li>
	
    <% } %>
  </ul>

************************************************************************
***Step 8: Link to Ask a Question View***

<%= Html.ActionLink("Ask a question", "Ask") %>


************************************************************************
****Step 9: Create Ask View method****

public ActionResult Ask() {
	return View();
}

************************************************************************

***Step 11 Populate Ask View*****

    <% using(Html.BeginForm()) { %>
        <p>
            <label for="Question.Title">Title</label>
            <%= Html.TextBox("Question.Title") %>
        </p>
        <p>
            <label for="Question.Body">Body</label>
            <%= Html.TextArea("Question.Body") %>
        </p>
        <input type="submit" value="Ask" />
    <% } %>

*************************************************************************

****Step 12 Create Post Action for Ask View***

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Ask(Question question)
        {
            var entities = new HaackOverflowEntities();

            var dbQuestion = new Question();
            dbQuestion.Title = question.Title;
            dbQuestion.Body = question.Body;
            dbQuestion.DateCreated = DateTime.Now;
            dbQuestion.Votes = 0;
            dbQuestion.Views = 1;

            entities.AddToQuestions(dbQuestion);
            entities.SaveChanges();

            
            return RedirectToAction("Index");
        }

**************************************************************************
***Step 13 Add Ask form to Index Page and Add AJAX***

 
    <fieldset>
        <legend>Ask a question</legend>
    
    <% using (Ajax.BeginForm("Ask", new AjaxOptions { UpdateTargetId = "message" })) { %>
        <p>
            <label for="Question.Title">Title</label>
            <%= Html.TextBox("Question.Title")%>
        </p>
        <p>
            <label for="Question.Body">Body</label>
            <%= Html.TextArea("Question.Body")%>
        </p>
        <input type="submit" value="Ask" />
    <% } %>
    </fieldset>
****************************************************************************

**Step 14 Create an update Div**

<div> id = "message"></div>

*****************************************************************************

****Step 15 Change controller action if its an AJAX request*****

if (Request.IsMvcAjaxRequest()) {
                return Content("It Worked");
            }

******************************************************************************

***Step 16 Add Script references to AJAX to Master Page***

   <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>


*******************************************************************************

**Step 17 Change update target ID and insert new Markup***


   <% using (Ajax.BeginForm("Ask", new AjaxOptions { UpdateTargetId = "questions", InsertionMode = InsertionMode.InsertAfter, OnSuccess="flashit" })) { %>

*********************************************************************************
***Step 19 Add List Items to the ViewUserControl to render***

        <li>
            <div class="question-info">
                <div class="votes count"><span><%= ViewData.Model.Votes %></span> votes</div>
                <div class="answers count"><span>0</span> answers</div>
                <div class="views count"><span><%= ViewData.Model.Views%></span> views</div>
                <div class="question">
                    <h3 class="title"><%= Html.Encode(ViewData.Model.Title)%></h3>
                    <div class="meta">question asked on <%= ViewData.Model.DateCreated%></div>
                </div>
            </div>
        </li>

***********************************************************************************
**Step 20 Call Render Control**

<% Html.RenderPartial("QuestionPartial", question); %>

*********************************************************************************

** Step 21 Strongly type the ViewUserControl***

 public partial class QuestionPartial : System.Web.Mvc.ViewUserControl<Question>


***********************************************************************************


**Step 23  Add Additional Scripts to the Master Page**

    <script src="../../Scripts/jquery.color.js" type="text/javascript"></script>
    <script src="../../Scripts/Phil-Script.js" type="text/javascript"></script>

***********************************************************************************

***Step 24 Change the Ask a Question Return to return Partial***

 if (Request.IsMvcAjaxRequest()) {
                return PartialView("QuestionPartial", dbQuestion);
            }

***********************************************************************************
***Step 25 Add JQuery call to the Begin Form***

using (Ajax.BeginForm("Ask", new AjaxOptions { UpdateTargetId = "questions", InsertionMode = InsertionMode.InsertAfter, OnSuccess="flashit" }))

************************************************************************************

**Add script for "flashit" method"***



    <script type="text/javascript">
        function flashit() {
            flash('#questions li:last');
        }
    </script>


************************************************************************************